package Test_1116;

import java.util.Arrays;

/**
 * Created with Intellij IDEA
 * Description:
 * User: 星辰
 */
public class MyStack {
    //元素
    public int[] n;
    //有效元素大小
    public int usedsize;
//构造方法
    public MyStack(int[] n) {
        this.n = n;
    }
    //入栈:将元素进行插入
    //1.判断是否满了，满了用Arrays.copyOf进行扩容
    //1.用元素放入数组中，
    //2.元素个数增加
    public void push(int x){
        if(isFull()){
          this.n= Arrays.copyOf(n,2*n.length);
        }
        n[usedsize]=x;
         usedsize++;
    }
    private boolean isFull(){
        return usedsize==n.length;
    }
    //出栈：将栈顶元素拿出
    //1.判断栈是否为空；
    // 2.将栈中元素减减即可
    public int pop(){
        if(empty()){
            return -1;
        }
        int val=n[usedsize-1];
         usedsize--;
         return val;
    }
    //获取栈顶元素
    //1.判断栈是否为空,如果为空抛出异常
    // 2.获取栈中元素
    public int peek(){
        if(empty()){
             throw new EmptyStackException();
        }
        return n[usedsize-1];
    }
    //判断栈是否为空
    //看其有效个数是否为0
    public boolean empty()throws EmptyStackException{
          return this.usedsize==0;
    }
}
